package com.hh.controller;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.hh.entity.ProdTag;
import com.hh.service.ProdTagService;
import com.hh.vo.ProdTagVo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.http.ResponseEntity;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;

import javax.annotation.Resource;
import java.util.List;

/**
 * @author 辉辉 2022/8/17 8:15
 */
@Api(tags = "商品标签管理接口")
@RestController
@RequestMapping("/prod/prodTag")
public class ProdTagController {
    @Resource
    private ProdTagService prodTagService;

    @GetMapping("/page")
    @ApiOperation("商品标签的分页查询")
    @PreAuthorize("hasAuthority('prod:prodTag:page')")
    public ResponseEntity<IPage<ProdTag>> prodTagPage(Page<ProdTag> page, ProdTag prodTag) {
        IPage<ProdTag> prodTagIPage = prodTagService.findProdTagPage(page, prodTag);
        return ResponseEntity.ok(prodTagIPage);
    }

    @PostMapping
    @ApiOperation("商品标签的新增")
    @PreAuthorize("hasAuthority('prod:prodTag:save')")
    public ResponseEntity<Void> addProdTag(@RequestBody ProdTag prodTag) {
        prodTagService.save(prodTag);
        return ResponseEntity.ok().build();
    }

    @GetMapping("/listTagList")
    @ApiOperation("查询所有商品标签分组")
    public ResponseEntity<List<ProdTag>> findAddTag() {
        List<ProdTag> list = prodTagService.list();
        return ResponseEntity.ok(list);
    }

    // ---------前台的------

    @GetMapping("/prodTagList")
    @ApiOperation("加载前台的标签分组")
    public ResponseEntity<List<ProdTagVo>> loadFrontProdTag() {
        List<ProdTagVo> prodTagVos = prodTagService.findProdTagVo();
        return ResponseEntity.ok(prodTagVos);
    }
}
